package cn.xzqwjw.taskmanager.service;

import cn.xzqwjw.taskmanager.domain.pojo.Category;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author wjw
 */
public interface CategoryService extends IService<Category> {

  /**
   * 添加分类
   *
   * @param category 要添加的分类对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String add(Category category);

  /**
   * 批量添加分类
   *
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String addBatch(String tag, int idParent, String rows);

  /**
   * 根据id删除分类
   *
   * @param id 分类id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String delById(int id);

  /**
   * 修改分类
   *
   * @param category 要修改的分类对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String modify(Category category);

  /**
   * 根据id得到一条记录
   *
   * @param id 要查询的id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String queryById(int id);

  /**
   * 如果有标签，则根据标签得到所有分类列表
   * 如果无，则到所有分类列表
   *
   * @param tag 分类的tag
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String listAll(String tag);

  /**
   * 获取卫健委下所有的子部门id，用于获取所有卫健委下所有管理员
   */
  List<Integer> listAllIdSub();

  /**
   * 获取某子部门的所有上级id，包括父id，爷id，用于编辑时，设置树的展开
   */
  List<Integer> listAllIdParent(int id);

}
